# 1、函数的定义
# def关键字，可以定义带有名称的函数，可以重复使用
# -lambda关键字，可以定义匿名函数(无名称)，
# 匿名函数只能使用一次匿名函数用于临时创建一个函数，只使用一次的场景

# 2、匿名函数基本语法
# lambda 形参列表:函数体(一行代码)
# -lambda关键字，表示定义匿名函数
# 形参列表:比如 num1,num2 表示接收两个参数


# 编写一个函数，可以接收一个匿名函数，然后调用匿名函数，返回两个数的最大值
def f1(function, num1, num2):
    """
    功能： 调用function返回两个数的最大值
    :param function: 接收匿名函数
    :param num1: 第一个数值
    :param num2: 第二个数值
    :return: 两个数的最大值
    """
    # 打印function的类型，用于调试和确认传入的参数类型
    print(f"function类型: {type(function)}")
    # 返回匿名函数比较num1和num2的结果
    return function(num1, num2)


# 调用f1函数，并传入一个lambda表达式用于比较两个数的大小
# lambda a, b: a if a > b else b 这一部分就是匿名函数
# 后面的 10 和 20 就是参数
f1(lambda a, b: a if a > b else b, 10, 20)

